/*
 * Created on 2005-10-8
 *
 */
package com.hd123.rumba.domain;

import java.util.Date;

import net.sf.hibernate.HibernateException;

import com.hd123.rumba.exception.BusinessException;
import com.hd123.rumba.runtime.IVersionedPersistent;
import com.hd123.rumba.user.IProfile;
import com.hd123.rumba.util.HashMap2;

/**
 * @author caili
 */
public interface IDomain extends IVersionedPersistent {

  /** 所属域 */
  public IDomain getDomain() throws BusinessException;

  public void setDomain(IDomain domain) throws BusinessException;

  /** 最后修改人 */
  public String getLastModifier() throws BusinessException;

  public void setLastModifier(String lastModifier) throws BusinessException;

  /** 状态 */
  public Integer getState() throws BusinessException;

  public void setState(Integer state) throws BusinessException;

  /** 代码 */
  public String getCode() throws BusinessException;

  public void setCode(String code) throws BusinessException;

  /** 名称 */
  public String getName() throws BusinessException;

  public void setName(String name) throws BusinessException;

  /** 备注 */
  public String getRemark() throws BusinessException;

  public void setRemark(String remark) throws BusinessException;

  /** 档案 */
  public IProfile getProfile() throws BusinessException;

  public void setProfile(IProfile profile) throws BusinessException;

  /**
   * 判断是否已经装载构件包功能视图。
   * 
   * @param cfvUuid
   *          指定的构件包功能视图uuid。
   * @return true/false
   * @throws BusinessException
   * @throws HibernateException
   */
  public boolean hasCFV(String cfvUuid) throws BusinessException, HibernateException;

  /** @deprecated */
  public static final String CAPTION_PROFILE2 = "档案2";

  /** @deprecated */
  public IProfile getProfile2() throws BusinessException;

  /** @deprecated */
  public void setProfile2(IProfile profile2) throws BusinessException;

  /** @deprecated */
  public static final String CAPTION_SETTLEORGANIZATION = "结算单位";

  /** @deprecated */
  public IDomain getSettleOrganization() throws BusinessException;

  /** @deprecated */
  public void setSettleOrganization(IDomain settleOrganization) throws BusinessException;

  /** @deprecated */
  public static final String CAPTION_TAXCODE = "税号";

  /** @deprecated */
  public String getTaxCode() throws BusinessException;

  /** @deprecated */
  public void setTaxCode(String taxCode) throws BusinessException;

  /** @deprecated */
  public static final String CAPTION_INVOICECODE = "发票代码";

  /** @deprecated */
  public String getInvoiceCode() throws BusinessException;

  /** @deprecated */
  public void setInvoiceCode(String invoiceCode) throws BusinessException;

  /** @deprecated */
  public static final String CAPTION_BANKACCOUNT = "银行帐号";

  /** @deprecated */
  public String getBankAccount() throws BusinessException;

  /** @deprecated */
  public void setBankAccount(String bankAccount) throws BusinessException;

  /** @deprecated */
  public static final String CAPTION_PROPERTY = "单位性质";

  /** @deprecated */
  public static final String CAPTION_ISHEADQUARTER = "是否总部";

  /** @deprecated */
  public Boolean getIsHeadQuarter() throws BusinessException;

  /** @deprecated */
  public void setIsHeadQuarter(Boolean isHeadquarter) throws BusinessException;

  /** @deprecated */
  public static final String CAPTION_ISCOMPANY = "是否公司";

  /** @deprecated */
  public Boolean getIsCompany() throws BusinessException;

  /** @deprecated */
  public void setIsCompany(Boolean isCompany) throws BusinessException;

  /** @deprecated */
  public static final String CAPTION_ISDC = "是否配送中心";

  /** @deprecated */
  public Boolean getIsDc() throws BusinessException;

  /** @deprecated */
  public void setIsDc(Boolean isDc) throws BusinessException;

  /** @deprecated */
  public static final String CAPTION_ISSTORE = "是否门店";

  /** @deprecated */
  public Boolean getIsStore() throws BusinessException;

  /** @deprecated */
  public void setIsStore(Boolean isStore) throws BusinessException;

  /** @deprecated */
  public static final String CAPTION_ISVENDOR = "是否供应商";

  /** @deprecated */
  public Boolean getIsVendor() throws BusinessException;

  /** @deprecated */
  public void setIsVendor(Boolean isVendor) throws BusinessException;

  /** @deprecated */
  public static final String CAPTION_ISCUSTOMER = "是否客户";

  /** @deprecated */
  public Boolean getIsCustomer() throws BusinessException;

  /** @deprecated */
  public void setIsCustomer(Boolean isCustomer) throws BusinessException;

  /** 层级码 */
  public String getLevelId() throws BusinessException;

  public void setLevelId(String levelId) throws BusinessException;

  /** 上级单位 */
  public IDomain getUpperDomain() throws BusinessException;

  public void setUpperDomain(IDomain upperDomain) throws BusinessException;

  /** @deprecated */
  public static final String CAPTION_VALUE_STOREINSTALLTIME = "门店安装时间";

  /** @deprecated */
  public Date getStoreInstallTime() throws BusinessException;

  /** @deprecated */
  public void setStoreInstallTime(Date storeInstallTime) throws BusinessException;

  /** @deprecated */
  public static final String CAPTION_DELIVERYORDER = "门店配货次序";

  /** @deprecated */
  public Integer getDeliveryOrder() throws BusinessException;

  /** @deprecated */
  public void setDeliveryOrder(Integer deliveryOrder) throws BusinessException;

  /** @deprecated */
  public static final String CAPTION_ORDERDAYS = "定货到货天数";

  /** @deprecated */
  public Integer getOrderDays() throws BusinessException;

  /** @deprecated */
  public void setOrderDays(Integer orderDays) throws BusinessException;

  /** @deprecated */
  public static final String CAPTION_CUSTOMIZEDORDERDAYS = "定制品到货天数";

  /** @deprecated */
  public Integer getCustomizedOrderDays() throws BusinessException;

  /** @deprecated */
  public void setCustomizedOrderDays(Integer customizedOrderDays) throws BusinessException;

  /** @deprecated */
  public static final String CAPTION_DEALRANGE = "经营范围";

  /** @deprecated */
  public String getDealRange() throws BusinessException;

  /** @deprecated */
  public void setDealRange(String dealRange) throws BusinessException;

  /** @deprecated */
  public static final String CAPTION_PRODUCTSTYLE = "产品风格";

  /** @deprecated */
  public String getProductStyle() throws BusinessException;

  /** @deprecated */
  public void setProductStyle(String productStyle) throws BusinessException;

  /** @deprecated */
  public static final String CAPTION_TRANSPORTER = "运输费承担方";
  /** @deprecated */
  public static final String CAPTION_TRANSPORTER_SUPPLY = "供方"; // 供方
  /** @deprecated */
  public static final String VALUE_TRANSPORTER_SUPPLY = "0"; // 供方
  /** @deprecated */
  public static final String CAPTION_TRANSPORTER_REQUIRE = "需方"; // 需方
  /** @deprecated */
  public static final String VALUE_TRANSPORTER_REQUIRE = "1"; // 需方

  /** @deprecated */
  public String getTransporter() throws BusinessException;

  /** @deprecated */
  public void setTransporter(String transporter) throws BusinessException;

  /** @deprecated */
  public static final String CAPTION_LEVEL = "等级";

  /** @deprecated */
  public String getLevel() throws BusinessException;

  /** @deprecated */
  public void setLevel(String level) throws BusinessException;

  /** @deprecated */
  public static final String CAPTION_PROFILE3 = "联系人2";
  /** @deprecated */
  public static final String CAPTION_PROFILE3_POSITION = "联系人2职位";
  /** @deprecated */
  public static final String CAPTION_PROFILE3_PHONEOFFICE = "联系人2电话";
  /** @deprecated */
  public static final String CAPTION_PROFILE3_MOBILE = "联系人2手机";

  /** @deprecated */
  public IProfile getProfile3() throws BusinessException;

  /** @deprecated */
  public void setProfile3(IProfile profile3) throws BusinessException;

  /** @deprecated */
  public static final String CAPTION_PROFILE4 = "联系人3";
  /** @deprecated */
  public static final String CAPTION_PROFILE4_POSITION = "联系人3职位";
  /** @deprecated */
  public static final String CAPTION_PROFILE4_PHONEOFFICE = "联系人3电话";
  /** @deprecated */
  public static final String CAPTION_PROFILE4_MOBILE = "联系人3手机";

  /** @deprecated */
  public IProfile getProfile4() throws BusinessException;

  /** @deprecated */
  public void setProfile4(IProfile profile4) throws BusinessException;

  public String getCodeName() throws BusinessException;

  public String getNameCode() throws BusinessException;

  public String debugInfo();

  /**
   * @deprecated
   * @return 是否内部单位
   */
  public boolean isInternal();

  /**
   * 得到Domain的单位性质中文名称.方便页面编码
   * 
   * @deprecated
   * @author 王志国
   */
  public String getPropertyCaption();

  /** @deprecated */
  public static final String CAPTION_CLASS = CDomain.CAPTION_CLASS;
  /** @deprecated */
  public static final String CAPTION_DOMAIN = CDomain.CAPTION_DOMAIN;
  /** @deprecated */
  public static final String CAPTION_LASTMODIFIER = CDomain.CAPTION_LASTMODIFIER;
  /** @deprecated */
  public static final String CAPTION_STATE = CDomain.CAPTION_STATE;
  /** @deprecated */
  public static final Integer VALUE_STATE_DELETED = CDomain.VALUE_STATE_DELETED;
  /** @deprecated */
  public static final Integer VALUE_STATE_NORMAL = CDomain.VALUE_STATE_NORMAL;
  /** @deprecated */
  public static final Integer VALUE_STATE_ALL = CDomain.VALUE_STATE_ALL;
  /** @deprecated */
  public static final Integer VALUE_STATE_UNOPEN = CDomain.VALUE_STATE_UNOPEN;
  /** @deprecated */
  public static final Integer VALUE_STATE_PAUSED = CDomain.VALUE_STATE_PAUSED;
  /** @deprecated */
  public static final Integer VALUE_STATE_CLOSED = CDomain.VALUE_STATE_CLOSED;
  /** @deprecated */
  public static final String CAPTION_VALUE_STATE_DELETED = CDomain.CAPTION_VALUE_STATE_DELETED;
  /** @deprecated */
  public static final String CAPTION_VALUE_STATE_NORMAL = CDomain.CAPTION_VALUE_STATE_NORMAL;
  /** @deprecated */
  public static final String CAPTION_VALUE_STATE_ALL = CDomain.CAPTION_VALUE_STATE_ALL;
  /** @deprecated */
  public static final String CAPTION_VALUE_STATE_UNOPEN = CDomain.CAPTION_VALUE_STATE_UNOPEN;
  /** @deprecated */
  public static final String CAPTION_VALUE_STATE_PAUSED = CDomain.CAPTION_VALUE_STATE_PAUSED;
  /** @deprecated */
  public static final String CAPTION_VALUE_STATE_CLOSED = CDomain.CAPTION_VALUE_STATE_CLOSED;
  /** @deprecated */
  public static final HashMap2 STATESMAP = CDomain.STATEMAP;
  /** @deprecated */
  public static final String CAPTION_CODE = CDomain.CAPTION_CODE;
  /** @deprecated */
  public static String VALUE_ID_ROOT = CDomain.VALUE_ID_ROOT;
  /** @deprecated */
  public static final String CAPTION_NAME = CDomain.CAPTION_NAME;
  /** @deprecated */
  public static final String CAPTION_REMARK = CDomain.CAPTION_REMARK;
  /** @deprecated */
  public static final String CAPTION_PROFILE = CDomain.CAPTION_PROFILE;
  /** @deprecated */
  public static final String CAPTION_LEVELID = CDomain.CAPTION_LEVELID;
  /** @deprecated */
  public static final String VALUE_LEVELRULE = CDomain.VALUE_LEVELRULE;
  /** @deprecated */
  public static final String CAPTION_UPPERDOMAIN = CDomain.CAPTION_UPPERDOMAIN;

  /** @deprecated */
  public static final String PERMISSION_FA_CODE = CDomain.PERMISSION_FA_CODE;
  /** @deprecated */
  public static final String PERMISSION_FA_NAME = CDomain.PERMISSION_FA_NAME;
  /** @deprecated */
  public static final String PERMISSION_FA_REMARK = CDomain.PERMISSION_FA_REMARK;
  /** @deprecated */
  public static final String PERMISSION_FA_PROFILE = CDomain.PERMISSION_FA_PROFILE;
  /** @deprecated */
  public static final String PERMISSION_FA_UPPERDOMAIN = CDomain.PERMISSION_FA_UPPERDOMAIN;
  /** @deprecated */
  public static final String PERMISSION_FA_LEVELID = CDomain.PERMISSION_FA_LEVELID;

  /** @deprecated */
  public static final String PERMISSION_VIEW = "单位.查看权";/* "单位.动作.查看"; */
  /** @deprecated */
  public static final String PERMISSION_EDIT = "单位.编辑权";/* "单位.动作.编辑"; */
  /** @deprecated */
  public static final String PERMISSION_ENTER = "单位.进入权";/* "单位.动作.进入" */
  /** @deprecated */
  public static final String PERMISSION_TAB_PRODUCT = "单位.页面.商品";

  /** @deprecated */
  public static final String CAPTION_PRICEGROUP = "价格组";
  /** @deprecated */
  public static final String CAPTION_DELIVERYGROUP = "配货组";

  /** @deprecated */
  public static final String PERMISSION_FA_PROFILE2 = "单位.字段.财务部联系方式";
  /** @deprecated */
  public static final String PERMISSION_FA_TAXCODE = "单位.字段.税号";
  /** @deprecated */
  public static final String PERMISSION_FA_INVOICECODE = "单位.字段.发票代码";
  /** @deprecated */
  public static final String PERMISSION_FA_BANKACCOUNT = "单位.字段.银行帐号";
  /** @deprecated */
  public static final String PERMISSION_FA_PROPERTY = "单位.字段.性质";
  /** @deprecated */
  public static final String PERMISSION_FA_SETTLEORGANIZATION = "单位.字段.结算单位";
  /** @deprecated */
  public static final String PERMISSION_FA_DELIVERYORDER = "单位.字段.配货次序";
  /** @deprecated */
  public static final String PERMISSION_FA_ORDERDAYS = "单位.字段.定货到货天数";
  /** @deprecated */
  public static final String PERMISSION_FA_CUSTOMIZEDORDERDAYS = "单位.字段.定制品到货天数";
  /** @deprecated */
  public static final String PERMISSION_FA_DEALRANGE = "单位.字段.经营范围";
  /** @deprecated */
  public static final String PERMISSION_FA_PRODUCTSTYLE = "单位.字段.产品风格";
  /** @deprecated */
  public static final String PERMISSION_FA_TRANSPORTER = "单位.字段.运输费承担方";
  /** @deprecated */
  public static final String PERMISSION_FA_LEVEL = "单位.字段.等级";

  /** @deprecated */
  public static final String PERMISSION_DELIVERYORDER_VIEW = "配货参数.门店配货次序.查看权";/* "配货参数.门店配货次序.查看"; */
  /** @deprecated */
  public static final String PERMISSION_DELIVERYORDER_EDIT = "配货参数.门店配货次序.修改权";/* "配货参数.门店配货次序.修改"; */

}
